// luogu-judger-enable-o2
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=5e5+10; const ll p=998244353,wn=3,wi=332748118;
ll fp(ll a,ll x){
    ll s=1; 
    for(;x;x>>=1,(a*=a)%=p) if(x&1) (s*=a)%=p;
    return s;
}
int r[N];
void ntt(ll a[],int n,int op){
    for(int i=0;i<n;i++) if(i<r[i]) swap(a[i],a[r[i]]);
    for(int i=1;i<n;i<<=1){
        ll w=fp((op==1)?wn:wi,(p-1)/(i<<1));
        for(int j=0;j<n;j+=(i<<1)){
            ll s=1;
            for(int k=0;k<i;k++,(s*=w)%=p){
                ll x=a[j+k],y=s*a[i+j+k]%p; 
                a[j+k]=(x+y)%p; a[i+j+k]=(x-y+p)%p;
            }
        }
    }
}
void write(char c,ll a[],int n){
    printf("%c:",c); for(int i=0;i<n;i++) cout<<a[i]<<" "; cout<<endl;
}
ll ta[N],tb[N];
void mul(ll a[],ll b[],ll c[],int n){
    //cout<<"mul"<<endl; write('a',a,n); write('b',b,n);
    int m=1,k=0; while(m<n+n) m<<=1,k++;
    for(int i=0;i<m;i++)
        r[i]=(r[i>>1]>>1)|((i&1)<<(k-1));
	for(int i=0;i<n;i++) ta[i]=a[i],tb[i]=b[i];
	for(int i=n;i<m;i++) ta[i]=tb[i]=0;
    ntt(ta,m,1); ntt(tb,m,1); 
    for(int i=0;i<m;i++) c[i]=(ta[i]*tb[i])%p; 
    ntt(c,m,-1); ll iv=fp(m,p-2);
    for(int i=0;i<n;i++) (c[i]*=iv)%=p;
	for(int i=n;i<m;i++) c[i]=0;
    //write('c',c,m);
}
ll a[N],b[N],c[N];
void inv(int n){
    //cout<<"n="<<n<<endl;
    if(n==1){b[0]=fp(a[0],p-2); return;}
    inv((n+1)>>1); mul(b,b,c,n); //write('c',c,n);
    /*n<<=1;*/ mul(a,c,c,n);
    for(int i=0;i<n;i++) b[i]=(b[i]*2-c[i]+p)%p;
    //for(int i=(n>>1);i<n;i++) b[i]=0;
    //write('b',b,n);
}
int n;
int main()
{
    //freopen(".in","r",stdin);
    //freopen(".out","w",stdout);
    cin>>n; for(int i=0;i<n;i++) scanf("%lld",&a[i]);
    inv(n); for(int i=0;i<n;i++) printf("%lld ",b[i]);
    return 0;
}
